دستور Having :
از اين دستور برای افزودن شرط به توابع درون ساخته SQL استفاده می شود ، زيرا از دستور Where نمی توان برای کار با مقادير خروجی توابع درون ساخته SQL استفاده کرد .
به عبارت ديگر Having برای اعمال شرط به ستون ها اعمال می شود و همان کاری را می کند که Where در رکوردها انجام می دهد .با مثال های زير استفاده از دستور Having را بررسی می کنيم :
نکته : دستور Having معمولا با Group By می آيد .
- توجه : از داده های جداول زير در مثال های اين صفحه استفاده می کنيم :
41252214 |
Ahmad |
Rezaee |
Hard Ware |
Tehran |
18 |
10724113 |
Ehsan |
Amiri |
Soft Ware |
Karaj |
14 |
10254861 |
Zahra |
Hosini |
Hard Ware |
Tehran |
17 |
27365187 |
Sahar |
Ahmadi |
Soft Ware |
Bam |
16 |
35654415 |
Hesam |
Razavi |
Soft Ware |
Tehran |
19 |
1011 |
پايگاه داده |
3 |
عملی |
1012 |
مباحث ويژه |
3 |
عملی |
1013 |
زبان تخصصی |
2 |
نطری |
41252214 |
1011 |
2 |
85 - 86 |
16 |
10724113 |
1011 |
2 |
85 - 86 |
14 |
41252214 |
1012 |
1 |
85 - 86 |
17 |
10724113 |
1012 |
1 |
85 - 86 |
11 |
10254861 |
1013 |
2 |
85 - 86 |
13 |
10254861 |
1011 |
2 |
84 - 85 |
8 |
27365187 |
1012 |
1 |
84 - 85 |
19 |
27365187 |
1013 |
1 |
84 - 85 |
16 |
35654415 |
1011 |
2 |
84 - 85 |
9 |
35654415 |
1013 |
2 |
84 - 85 |
17 |
مثال : از جدول Students , Selection مجموع نمرات و نام و نام خانواگی دانشجويانی که مجموع نمرات آنها بيش از 25 است را نمايش دهيد :
Select Name , Family , Sum ( Selection.Grade ) As مجموع نمرات
From Students , Selection
Where Students.Student ID = Selection.Student ID
Group By Name , Family
Having Sum ( Selection.Grade ) > 25
Order By Family; |
Sahar |
Ahmadi |
35 |
Ahmad |
Rezaee |
33 |
|
مثال : از جدول Selection و Courses نام دروسی را ارائه دهيد که 4 بار توسط دانشجويان انتخاب شده باشد :
Select CoTitle , Count ( Selection.Course ID ) As تعداد انتخاب
From Selection , Courses
Where Selection.Course ID = Courses.Course ID
Group By CoTitle
Having Count ( Selection.Grade ) = 4 ; |
|
|
امتیاز مطلب : 5
|
تعداد امتیازدهندگان : 1
|
مجموع امتیاز : 1